<?php

namespace Components;
use Think\Controller;

// 防止翻墙访问（未登录直接访问）
class AdminController extends Controller{

	public function __construct(){
		parent::__construct();
		// 防止未登录访问
		$mg_id = session('mg_id');
		if (empty($mg_id)) {
			// 使用js而不用php跳转，因为phbp跳转后会出现左边菜单
			echo '<script type="text/javascript">';
			echo 'window.top.location.href="/index.php/admin/Login/login"';
			echo '</script>';
		}

		// 防止翻墙访问（跨权限）
		$controller = strtolower(CONTROLLER_NAME);// 当前控制器
		$all_allow_controller_array = array('login', 'manager');// 任何权限都允许访问的控制器
		if (!in_array($controller, $all_allow_controller_array)) {
			$now_ac = strtolower(CONTROLLER_NAME . '-' . ACTION_NAME);//当前的访问路径
			// 判断当前访问的路径是否在当前管理员的允许访问路径内
			$mg = M('manager')->find($mg_id);//当前管理员
			$role_id = $mg['mg_role_id'];
			if ($role_id > 0) {// 非超级管理员，超级管理员不做判断
				$role = M('role')->find($role_id);// 当前管理员对应的角色
				// var_dump(stripos($role['role_auth_c'], $now_ac));
				if (stripos($role['role_auth_c'], $now_ac) == false) {// 权限不在范围内
					$this->error('非法权限', U('manager/index'), 3);
				}
			}
		}
	}
}